package IO_;

import java.io.File;
import java.io.IOException;

/**
 * 对文件的 基本操作
 */
public class Io03 {
    public static void main(String[] args) throws IOException {
        //在D盘创建一个文件夹，名为io,在io中创建一个文件夹，名为1，
        // 在1文件夹中创建一个test.txt 文件
        File file = new File("D:/io/1/test.txt");//
        //1.String getParent() 返回File对象的⽗⽬录⽂件路径
        System.out.println("⽗⽬录⽂件路径: "+file.getParent());// D:\io\1
        //2.String getName() 返回FIle对象的纯⽂件名称
        System.out.println("纯⽂件名称: "+file.getName());// test.txt
        //3.String getPath() 返回File对象的⽂件路径
        System.out.println("⽂件路径: "+file.getPath());//  D:\io\1\test.txt
        //4.String getAbsolutePath() 返回File对象的绝对路径
        System.out.println("绝对路径: "+file.getAbsolutePath());//  D:\io\1\test.txt
        //5.String getCanonicalPath() 返回File对象的修饰过的绝对路径
        System.out.println("修饰过的绝对路径: "+file.getCanonicalPath());// D:\io\1\test.txt
        //6.boolean exists() 判断File对象描述的⽂件是否真实存在
        System.out.println("⽂件是否真实存在: "+file.exists());// true
        //7.boolean isDirectory() 判断File对象代表的⽂件是否是⼀个⽬录
        System.out.println("否是⼀个⽬录: "+file.isDirectory());// false
        //8.boolean isFile() 判断File对象代表的⽂件是否是⼀个普通⽂件
        System.out.println("是否是⼀个普通⽂件："+file.isFile());// true
        //4.String[] list() 返回File对象代表的⽬录下的所有⽂件名
        System.out.println("File对象代表的⽬录下的所有⽂件名: "+file.list()); //null
        //File[] listFiles() 返回File对象代表的⽬录下的所有⽂件，以File对象表⽰
        System.out.println("File对象代表的⽬录下的所有⽂件，以File对象表⽰: "+file.listFiles());
                                                        // null
        File file1 = new File("./1.txt");
        //1.boolean createNewFile() 根据File对象，⾃动创建⼀个空⽂件。成功创建后返回true
        System.out.println("创建⼀个空⽂件： "+file1.createNewFile()); //true

//        //2.boolean delete() 根据File对象，删除该⽂件。成功删除后返回true
//        System.out.println("删除该⽂件: "+file1.delete()); //true
//
//        //3.void deleteOnExit() 根据File对象，标注⽂件将被删除，
//        // 删除动作会到JVM运⾏结束时才会进⾏
//        file1.deleteOnExit();
//
        //1.boolean mkdir() 创建File对象代表的⽬录
        File file2 = new File("./aaa");
        System.out.println(file2.mkdir());  //true
        //2.boolean mkdirs() 创建File对象代表的⽬录，如果必要，会创建中间⽬录
        File file3 = new File("./aaa/bbb/ccc");
        System.out.println(file3.mkdirs());  // true
        //3.boolean renameTo(File dest) 进⾏⽂件改名，也可以视为我们平时的剪切、粘贴操作
        System.out.println("进⾏⽂件改名: "+file1.renameTo(file2));// false
        //4.boolean canRead() 判断⽤⼾是否对⽂件有可读权限
        System.out.println("⽤⼾是否对⽂件有可读权限: "+file2.canRead()); //true
        //5.boolean canWrite() 判断⽤⼾是否对⽂件有可写权限
        System.out.println("⽤⼾是否对⽂件有可写权限: "+file2.canWrite());//true

    }
}
